The present invention relates to synchronous digital networks and particularly, although not exclusively to conversion of payload data between ETSI derived containers and SONET containers within synchronous digital hierarchy networks.
In the applicants co-pending U.S. patent applications Ser. No. 09/143466 entitled xe2x80x9cFrame Based Data Transmission Over Synchronous Digital Hierarchy Networkxe2x80x9d, and Ser. No. 09/143465 entitled xe2x80x9cPayload Mapping In Synchronous Networksxe2x80x9d, and the applicant""s U.S. patent application Ser. No. 09/166,184 entitled xe2x80x9cConcatenation of Containers in Synchronous Digital Hierarchy Networkxe2x80x9d, copies of which are filed herewith and the contents of which are incorporated herein, there is disclosed a method and apparatus for carrying frame based data over synchronous digital hierarchy (SDH) transport networks wherein the frame based data eg Ethernet data according to IEEE Standard 802.3, has an inherent data rate which does not conveniently match the telecoms data rates specified in ITU-T recommendations G.707 and G.708 for containers and tributary unit groups (TUGS). In the applicant""s previous disclosures, frame based data packets at a first (higher) data rate are mapped into a plurality of virtual container (VC) streams, each operating at a second (lower) data rate. For example a stream of 10 Mbits/s Ethernet data frames may be mapped into a plurality of five 2 Mbits/s virtual container streams and transported across a network to a destination in five parallel transmitted virtual container stream channels. On reaching the destination, the data frames are reconstructed from a plurality of payloads of the virtual container streams.
By incorporating the frame based data directly into synchronous transmission channels, the above disclosed methods may provide a functionality which has previously been available over a limited distance in a local area network, but extended over distances which have previously been regarded as being wide area networks, for example over networks spanning between different continents. Conventionally, a feature of SDH networks which span across the Atlantic ocean is that different transmission rates exist between Europe and North America. The known synchronous digital hierarchy multiplexing scheme has developed historically by incorporation of both European multiplexing standards (ETSI standards), and North American synchronous optical network (SONET) standards and Bellcore GR 253 standard, and is derived from a combination of different bit rate multiplex schemes. Large amounts of legacy network equipment exist in Europe, operating at the ETSI derived bit rates within the synchronous digital hierarchy, and in North America, operating at SONET bit rates within the synchronous digital hierarchy. In most cases a global network operator would wish to use either ETSI derived SDH equipment within a single territory, or SONET based SDH equipment and not convert data traffic between two different systems within a same territory, but only convert between ETSI and SONET data rates when spanning between networks across international boundaries. Within the synchronous digital hierarchy regime there are points of equivalence between the ETSI derived bit rates and the SONET derived bit rates. For example a VC-4 container is of equivalent bit rate and bit capacity to a SONET STS-3C frame. However, the VC4/STS-3C bit rate of approximately 155 MBits/s is too large for global network operators to offer to their customers for provision of individual globalized circuit and trunk services spanning across national borders and across both European and North American territories.
The practical problems of providing a frame based data network carried over a synchronous network across national boundaries include interfacing between ETSI and SONET options for most data traffic types within SDH, which involves provision of different equipment types which operate at ETSI and SONET data rates, as well as providing equipment and protocols to convert from ETSI derived synchronous bit rates, via plesiochronous bit rates to SONET bit rates and vice versa.
In order to implement the applicant""s above disclosed frame based data communications system in an SDH network spanning between ETSI and SONET domains, there is a requirement for translation of payload between ETSI and SONET frame options within SDH.
Although specific implementations of the present invention have arisen from addressing the problem of carrying frame based data over SDH networks, the implementations address a more general need for provision of translation of data between ETSI and SONET options within SDH, without having to convert through an intermediate plesiochronous mode.
One object in the present invention is to provide a method and apparatus for converting data between ETSI derived and SONET derived data rates within a synchronous digital hierarchy network in an efficient manner.
Another object of specific implementations of the present invention is to minimize an amount of latency within a data network.
A further object of specific implementations of the present invention is to provide efficient conversion between ETSI and SONET data rates at a lower level of granularity than is available by translating between the VC-4 and STS-3C containers.
Specific implementations of the present invention may convert between SONET and ETSI derived data rates without recourse to plesiochronous digital hierarchy data rates.
According to a first aspect of the present invention there is provided a method of converting payload data between a VC-3 virtual container and an STS-1 synchronous payload envelope, said method comprising the steps of reading a first set of pointer bytes, said first set of pointer bytes pointing to a position within said VC-4 virtual container of each of a plurality of VC-3 virtual containers; reading bytes of first, second and third VC-3 virtual containers from positions within said VC-4 virtual container indicated by said first set of pointer bytes; generating an STS-3C synchronous payload envelope; determining start positions within an STS-3C synchronous payload envelope of each of a plurality of STS-1 synchronous payload envelopes; determining positions within said STS-1 synchronous payload envelopes of each of a plurality of redundant stuff bytes; determining a set of STS-1 synchronous payload envelopes pointer byte values for pointing to said start positions of said plurality of STS-1 synchronous payload envelopes within said STS-3C synchronous payload envelopes; determining a set of pointer byte values for pointing to said positions of said redundant stuff bytes within said STS-1 synchronous payload envelopes; and writing said bytes of said first, second and third VC-3 virtual containers into positions within said STS-3C synchronous payload envelopes allocated for said plurality of said STS-1 SPEs.
Said method may further comprise the steps of reading a second set of pointer bytes, said second set of pointer bytes indicating a start of said VC-4 virtual container within an STM-1 frame.
Said step of determining positions within an STS-1 synchronous payload envelope of each of a plurality of redundant stuff bytes preferably comprises writing a said STS-1 synchronous payload envelope as a 9 byte rowxc3x9787 byte column array; and setting said plurality of redundant stuff bytes as occupying a 30th said column of bytes and a 59th said column of bytes.
Preferably said step of determining a set of pointer byte values for pointing to said positions of said redundant stuff bytes within a said STS-1 synchronous payload envelope comprises writing said STS-1 synchronous payload envelope as a 9 byte rowxc3x9787 byte column array, and setting said pointer byte values to point to a first byte of a 30th said column and to a first byte of a 59th said column.
Said step of determining start positions within the STS-3C synchronous payload envelope of each of a plurality of STS-1 synchronous payload envelopes may comprise the steps of allocating a memory area for storing an array of 9 rows of bytesxc3x97261 columns of bytes; and setting said start positions of said plurality of said STS-1 synchronous payload envelopes as being at a first byte of a first said column, a first byte of a second said column and a first byte of a third said column.
Said step of writing bytes of said first, second and third VC-3 virtual containers into STS-3C synchronous payload envelopes may comprise writing each of a plurality of columns of a said VC-3 container to a corresponding respective column in a 9 bytexc3x97261 byte memory array comprising a said STS-3C synchronous payload envelope.
Said step of writing bytes of said first, second and third VC-3 virtual containers into positions allocated for said SPS-1 synchronous payload envelopes may comprise the steps of writing a plurality of columns of said VC-3 virtual containers into columns of a 9 byte rowxc3x97261 byte column memory array, at positions of the 1st to 29th byte columns, the 31st to 58th byte columns, 60th to 87th byte columns, 89th to 116th byte columns, 118th to 146th byte columns, 147th to 175th byte columns, 178th to 204th byte columns, 209th to 235th byte columns and 234th to 261st byte columns.
Said method may comprise the steps of reading an STM-1 frame containing a said VC-4 virtual container; reading a third set of pointer bytes from a section overhead of said STM-1 frame, said third set of pointer bytes indicating a start position of said VC-4 virtual container within STM-1 frame.
The invention includes apparatus for converting payload data between a VC-3 virtual container and an STS-1 synchronous payload envelope, said apparatus comprising pointer processing means capable of reading a first set of pointer bytes, said first set of pointer bytes pointing to a position within said VC-4 virtual container of each of a plurality of VC-3 virtual containers; memory means arranged for storing first, second and third read VC-3 virtual containers from positions within said VC-4virtual container indicated by said first set of pointer bytes; pointer processing means capable of determining start positions within an STS-3C synchronous payload envelope of a plurality of STS-1 synchronous payload envelopes; pointer processing means capable of determining positions within said STS-1 synchronous payload envelopes of a plurality of redundant stuff bytes; pointer processing means capable of determining a set of pointer byte values for pointing to said start positions of said STS-1 synchronous payload envelopes within said STS-3C synchronous payload envelopes; pointer processing means capable of determining a set of pointer byte values for pointing to said positions of said redundant stuff bytes within said STS-1 synchronous payload envelopes; and memory means arranged for storing said VC-3 virtual container payload data in a memory area allocated for said STS-3C synchronous payload envelope at memory positions corresponding to said plurality of said STS-1 SPEs within said STS-3C SPE.
The receiver means is capable of receiving a VC-4 virtual container stream. The transmitter means is capable of transmitting a stream of STS-3C synchronous payload envelopes.
According to a second aspect of the present invention there is provided a method of converting payload data between a VC-3 virtual container and an STS-1 synchronous payload envelope, said method comprising the steps of: reading an STS-3C synchronous payload envelope, said STS-3C synchronous payload envelope containing a plurality of STS-1 synchronous payload envelopes; generating a VC-4 virtual container; writing said plurality of STS-1 synchronous payload envelopes to said VC-4 virtual container; determining values for a plurality of VC-3 virtual container pointers for identifying positions of said VC-3 containers within said VC-4; writing said VC-3 pointer values as VC-3 pointer bytes within said VC-4 container; and writing a plurality of stuff bytes to said VC-4 container.
Preferably, the method further comprises the step of removing redundant stuff bytes from said plurality of STS-1 synchronous payload envelopes prior to said step of writing said plurality of STS-1 synchronous payload envelopes to said VC-4 container.
Said plurality of STS-1 synchronous payload envelopes may be written to said VC-4 container as a plurality of byte columns, first, second and third said STS-1 synchronous payload envelopes each comprising a plurality of said byte columns, said plurality of STS-1 synchronous payload envelopes being written to said VC-4 container such that said byte columns of said first, second and third STS-1 synchronous payload envelopes are interleaved with each other within said VC-4 container.
Said step of determining values of said VC-3 pointers may comprise setting a first pointer value to refer to a position in a 9 byte rowxc3x97261 byte column array at a first row and seventh column of said array; setting a second pointer value to point to a position in said 9 byte rowxc3x97261 byte column array at a first row and eighth column of said array; and setting a third pointer value to point to a position in said 9 byte rowxc3x97261 byte column array at a first row and ninth column of said array.
Preferably the method further comprises the step of receiving an STS-3 frame containing said STS-3C synchronous payload envelope; and reading a set of pointers indicating start positions of said plurality of STS-1 synchronous payload envelopes within said STS-3C synchronous payload envelope.
Preferably the method further comprises the step of receiving an STS-3 frame containing an STS-3C synchronous payload envelope; and reading a set of pointers within a section overhead of said STS-3 frame, said pointers indicating a start position of said STS-3 synchronous payload envelope within said STS-3 frame.
The invention includes apparatus for converting payload data between a VC-3 virtual container and an STS-1 synchronous payload envelope, said apparatus comprising receiver means for receiving an STS-3C synchronous payload envelope, said STS-3C synchronous payload envelope containing a plurality of STS-1 synchronous payload envelopes; memory means arranged for storing said plurality of STS-1 synchronous payload envelopes received by said receiver means within a memory area arranged to store a VC-4 container; pointer processing means capable of generating VC-3 virtual container pointer bytes, and writing said VC-3 pointer bytes within said memory area allocated to said VC-4 container; and pointer processing means capable of generating a set of VC-4 overhead bytes and writing said overhead bytes to said memory area allocated for storing said VC-4 container.
Said memory area arranged to store a VC-4 container preferably comprises a 9 byte rowxc3x97261 byte column memory array. Preferably the apparatus comprises transmitter means for transmitting an STS-3 frame containing the contents of a VC-4 virtual container.
Preferably the apparatus comprises STM-1 frame section overhead processor means capable of generating a set of STM-1 frame section overhead bytes, said STM-1 frame overhead processor receiving a set of AU-4 pointer bytes from said pointer processor means, wherein said STM-1 frame overhead processor means operates to incorporate said AU-4 pointer bytes within an STM-1 section overhead.
According to a fourth aspect of the present invention there is provided a method of synchronously converting data between a plurality of VC-3 container streams and a plurality of STS-1 synchronous payload envelope streams, said method comprising the steps of: receiving a VC-4 container stream containing said plurality of VC-3 container streams; identifying each said VC-3 container stream within said VC-4 container stream and reading each said VC-3 container stream; adding redundant stuff bytes to each said VC-3 container stream; writing said plurality of VC-3 container streams to a stream of 9 byte columnxc3x97261 byte row STS-3C synchronous payload envelopes.
Preferably said method further comprises writing said stream of STS-3C synchronous payload envelopes to a stream of STS-3 frames.
Said step of writing said STS-3C synchronous payload envelope stream to said STS-3 frame stream may comprise for each STS-3 frame, determining a pointer value indicating a start position of a said STS-3C synchronous payload envelope within said STS-3 frame.
Said step of writing said stream of STS-3C synchronous payload envelopes to said stream of STS-3 frames preferably comprises determining a set of pointer values indicating a start position of a plurality of STS-1 synchronous payload envelopes, within each said STS-3 synchronous payload envelope of said STS-3C synchronous payload envelope stream.
According to a fourth aspect of the present invention there is provided a method of synchronously converting a stream of STS-1 synchronous payload envelopes to a stream of VC-3 virtual containers, said method comprising the steps of reading a stream of STS-3C synchronous payload envelopes, said STS-3 synchronous payload envelope stream containing a plurality of streams of said STS-1 synchronous payload envelopes; for each STS-3 synchronous payload envelope, identifying a start position of each of a plurality of STS-1 synchronous payload envelopes contained within said STS-3C synchronous payload envelope; for each STS-1 synchronous payload envelope, removing a plurality of redundant stuff bytes; writing said plurality of STS-1 synchronous payload envelope streams to a stream of 9 byte columnxc3x97255 byte row containers; to each said 9 bytexc3x97255 byte container, pre-pending a set of pointer bytes indicating start positions of each of a plurality of said STS-1 synchronous payload envelopes within said container; for each said container, adding a plurality of redundant stuff bytes; and for each said container adding a set of container overhead bytes.
Preferably said method further comprises the step of adding a set of STM-1 section overhead bytes to each said container to create an STM-1 frame stream.